﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace LinkyPOS.Class
{
    class Reports
    {
        // bu class diğer sınıflardan  listeler oluşutup user controllere ekleyen metodları içerir


        siparisler2 s = new siparisler2();


        // Belirli bir güne ait olan olay durumları
        public void gunlukolaylar(object obj, DateTime tar)
        {
            List<siparisler2> krap1 = s.olaylar(tar);
            foreach (var item in krap1)
            {
                ListViewItem lst = new ListViewItem();
                lst.Text = item.Sipariskodu.ToString();
                lst.SubItems.Add(item.Toplambrut.ToString());
                lst.SubItems.Add(item.Iskonto.ToString());
                lst.SubItems.Add(item.Net.ToString());
                switch (item.Durum)
                {
                    case 1:
                        lst.SubItems.Add("Cari-Rafta");
                        break;
                    case 2:
                        lst.SubItems.Add("Nakit-Rafta");
                        break;
                    case 3:
                        lst.SubItems.Add("Kredi Kartı- Rafta");
                        break;
                    case 4:
                        lst.SubItems.Add("Nakit");
                        break;
                    case 5:
                        lst.SubItems.Add("Kredi Kartı");
                        break;
                    case 6:
                        lst.SubItems.Add("Eski Nakit");
                        break;
                    case 7:
                        lst.SubItems.Add("Eski Kredi Kartı");
                        break;
                    default:
                        lst.SubItems.Add("Iptal");
                        break;
                }
                lst.SubItems.Add(item.Alimtarihi.ToString());
                lst.SubItems.Add(item.Odemetarihi.ToString());
                lst.SubItems.Add(item.musteribilgileri.ToString());


               (obj as ListView).Items.Add(lst);


            }
         
        
        
        
        
        
        
        }

        // belirli bir güne ait olan günlük nakiti döndürür

        public void gunluknakit(object obj, DateTime tar)
        {
            List<siparisler2> krap1 = s.gunluknakit(tar);
            foreach (var item in krap1)
            {
                ListViewItem lst = new ListViewItem();
                lst.Text = item.Sipariskodu.ToString();
                lst.SubItems.Add(item.Toplambrut.ToString());
                lst.SubItems.Add(item.Iskonto.ToString());
                lst.SubItems.Add(item.Net.ToString());
                switch (item.Durum)
                {
                    case 1:
                        lst.SubItems.Add("Cari-Rafta");
                        break;
                    case 2:
                        lst.SubItems.Add("Nakit-Rafta");
                        break;
                    case 3:
                        lst.SubItems.Add("Kredi Kartı- Rafta");
                        break;
                    case 4:
                        lst.SubItems.Add("Nakit");
                        break;
                    case 5:
                        lst.SubItems.Add("Kredi Kartı");
                        break;
                    case 6:
                        lst.SubItems.Add("Eski Nakit");
                        break;
                    case 7:
                        lst.SubItems.Add("Eski Kredi Kartı");
                        break;
                    default:
                        lst.SubItems.Add("Iptal");
                        break;
                }
                lst.SubItems.Add(item.Alimtarihi.ToString());
                lst.SubItems.Add(item.Odemetarihi.ToString());
                lst.SubItems.Add(item.musteribilgileri.ToString());


                (obj as ListView).Items.Add(lst);


            }
        }
        // belirli bir güne ait olan günlük visa döndürür

        public void gunlukvisa(object obj, DateTime tar)
        {
            List<siparisler2> krap1 = s.gunlukkredikarti(tar);
            foreach (var item in krap1)
            {
                ListViewItem lst = new ListViewItem();
                lst.Text = item.Sipariskodu.ToString();
                lst.SubItems.Add(item.Toplambrut.ToString());
                lst.SubItems.Add(item.Iskonto.ToString());
                lst.SubItems.Add(item.Net.ToString());
                switch (item.Durum)
                {
                    case 1:
                        lst.SubItems.Add("Cari-Rafta");
                        break;
                    case 2:
                        lst.SubItems.Add("Nakit-Rafta");
                        break;
                    case 3:
                        lst.SubItems.Add("Kredi Kartı- Rafta");
                        break;
                    case 4:
                        lst.SubItems.Add("Nakit");
                        break;
                    case 5:
                        lst.SubItems.Add("Kredi Kartı");
                        break;
                    case 6:
                        lst.SubItems.Add("Eski Nakit");
                        break;
                    case 7:
                        lst.SubItems.Add("Eski Kredi Kartı");
                        break;
                    default:
                        lst.SubItems.Add("Iptal");
                        break;
                }
                lst.SubItems.Add(item.Alimtarihi.ToString());
                lst.SubItems.Add(item.Odemetarihi.ToString());
                lst.SubItems.Add(item.musteribilgileri.ToString());


                (obj as ListView).Items.Add(lst);


            }
        
        }

        public void gunlukcari(object obj, DateTime tar)
        {
            List<siparisler2> krap1 = s.gunlukcari(tar);
            foreach (var item in krap1)
            {
                ListViewItem lst = new ListViewItem();
                lst.Text = item.Sipariskodu.ToString();
                lst.SubItems.Add(item.Toplambrut.ToString());
                lst.SubItems.Add(item.Iskonto.ToString());
                lst.SubItems.Add(item.Net.ToString());
                switch (item.Durum)
                {
                    case 1:
                        lst.SubItems.Add("Cari-Rafta");
                        break;
                    case 2:
                        lst.SubItems.Add("Nakit-Rafta");
                        break;
                    case 3:
                        lst.SubItems.Add("Kredi Kartı- Rafta");
                        break;
                    case 4:
                        lst.SubItems.Add("Nakit");
                        break;
                    case 5:
                        lst.SubItems.Add("Kredi Kartı");
                        break;
                    case 6:
                        lst.SubItems.Add("Eski Nakit");
                        break;
                    case 7:
                        lst.SubItems.Add("Eski Kredi Kartı");
                        break;
                    default:
                        lst.SubItems.Add("Iptal");
                        break;
                }
                lst.SubItems.Add(item.Alimtarihi.ToString());
                lst.SubItems.Add(item.Odemetarihi.ToString());
                lst.SubItems.Add(item.musteribilgileri.ToString());


                (obj as ListView).Items.Add(lst);


            }
        
        
        }

        public void eskinakit(object obj, DateTime tar)
        {
            List<siparisler2> krap1 = s.gunlukeskinakit(tar);
            foreach (var item in krap1)
            {
                ListViewItem lst = new ListViewItem();
                lst.Text = item.Sipariskodu.ToString();
                lst.SubItems.Add(item.Toplambrut.ToString());
                lst.SubItems.Add(item.Iskonto.ToString());
                lst.SubItems.Add(item.Net.ToString());
                switch (item.Durum)
                {
                    case 1:
                        lst.SubItems.Add("Cari-Rafta");
                        break;
                    case 2:
                        lst.SubItems.Add("Nakit-Rafta");
                        break;
                    case 3:
                        lst.SubItems.Add("Kredi Kartı- Rafta");
                        break;
                    case 4:
                        lst.SubItems.Add("Nakit");
                        break;
                    case 5:
                        lst.SubItems.Add("Kredi Kartı");
                        break;
                    case 6:
                        lst.SubItems.Add("Eski Nakit");
                        break;
                    case 7:
                        lst.SubItems.Add("Eski Kredi Kartı");
                        break;
                    default:
                        lst.SubItems.Add("Iptal");
                        break;
                }
                lst.SubItems.Add(item.Alimtarihi.ToString());
                lst.SubItems.Add(item.Odemetarihi.ToString());
                lst.SubItems.Add(item.musteribilgileri.ToString());


                (obj as ListView).Items.Add(lst);


            }
        }

        public void eskivisa(object obj, DateTime tar)
        {
            List<siparisler2> krap1 = s.gunlukeskivisa(tar);
            foreach (var item in krap1)
            {
                ListViewItem lst = new ListViewItem();
                lst.Text = item.Sipariskodu.ToString();
                lst.SubItems.Add(item.Toplambrut.ToString());
                lst.SubItems.Add(item.Iskonto.ToString());
                lst.SubItems.Add(item.Net.ToString());
                switch (item.Durum)
                {
                    case 1:
                        lst.SubItems.Add("Cari-Rafta");
                        break;
                    case 2:
                        lst.SubItems.Add("Nakit-Rafta");
                        break;
                    case 3:
                        lst.SubItems.Add("Kredi Kartı- Rafta");
                        break;
                    case 4:
                        lst.SubItems.Add("Nakit");
                        break;
                    case 5:
                        lst.SubItems.Add("Kredi Kartı");
                        break;
                    case 6:
                        lst.SubItems.Add("Eski Nakit");
                        break;
                    case 7:
                        lst.SubItems.Add("Eski Kredi Kartı");
                        break;
                    default:
                        lst.SubItems.Add("Iptal");
                        break;
                }
                lst.SubItems.Add(item.Alimtarihi.ToString());
                lst.SubItems.Add(item.Odemetarihi.ToString());
                lst.SubItems.Add(item.musteribilgileri.ToString());


                (obj as ListView).Items.Add(lst);


            }
        }


        // belirli bir listviewdakileri excele aktarır
        public void excelexport(object obj, ArrayList basliklar)
        {

            Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
            xla.Visible = true;
            Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet);
            Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)xla.ActiveSheet;
            ws.StandardWidth = 30;



            int i = 2;
            int j = 1;

            for (int a = 1; a < basliklar.Count; a++)
            {
                ws.Cells[1, a] = basliklar[a-1].ToString();
            }
       
            foreach (ListViewItem item in (obj as ListView).Items)
            {
                ws.Cells[i, j] = item.Text.ToString();
                foreach (ListViewItem.ListViewSubItem subitem in item.SubItems)
                {
                    ws.Cells[i, j] = subitem.Text.ToString();
                    j++;
                }
                j = 1;
                i++;
            }

       
        
        
        
        
        
        
        
        
        
        
        }

      






    }
}
